package com.example.forumsystem.services;


import com.example.forumsystem.model.Article;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;


@Service
public interface IArticleService {

    /**
     * 新增文章
     * @param article
     */
    @Transactional // 开启事务
    void creaete(Article article);

    /**
     * 查询所有未被删除的帖子
     * @return
     */
    List<Article> selectAll();
    /**
     * 根据板块id, 查询所有未被删除的帖子
     * @return
     */
    List<Article> selectAllByBoardId(Long boardId);

    /**
     * 根据文章id, 获取文章详情
     * @param id 文章id
     * @return
     */
    Article selectDetailById(Long id);

    /**
     * 修改文章
     * @param id 文章id
     * @param title 文章标题
     * @param content 文章正文
     */

    void modify(Long id, String title, String content);

    /**
     * 根据文章id查询文章信息
     * @param id 文章id
     * @return 文章信息
     */

    Article selectById(Long id);

    /**
     * 根据文章id修改点赞数量
     * @param id 文章id
     */
    void thumbsUpById(Long id);

    /**
     * 删除文章
     * @param id 文章id
     */
    @Transactional// 开启事务
    void subOneArticleCountById(Long id);

    /**
     * 修改文章信息, 回复数量+1
     * @param id 文章id
     */
    void addOneReplyCountById(Long id);

    /**
     * 根据用户id查询所有的帖子
     * @param id 用户id
     * @return
     */
    List<Article> selectByUserId(@RequestParam("id") Long id);
}
